/**
 * org.assess.oa.system.dao.TbMenuItemDAO
 */
package org.assess.oa.system.dao;

import java.util.List;
import java.util.Map;

import org.assess.oa.system.bean.TbMenuItem;

/**
 * @description 操作菜单项表的DAO层接口
 * @author XiaLongxiang
 * @createtime 2012-6-5 上午9:42:37
 */
public interface TbMenuItemDAO {
    /**
     * 根据菜单项ID查询指定的菜单项信息
     * @param menuitem_id
     * @return
     */
    public TbMenuItem queryTbMenuItemById(String menuitem_id);
    
    /**
     * 根据条件查询菜单项信息
     * @param parameters
     * @return
     */
    public List<TbMenuItem> queryTbMenuItemAsList(Map<String, Object> parameters);
    
    /**
     * 根据条件查询菜单项信息，查询条件中包含了角色ID，对于如果该角色与菜单项信息有映射关系，那么TbMenuItem对象的role_menu_id字段将不为空
     * @param parameters
     * @return
     */
    public List<TbMenuItem> queryTbMenuItemAsPermissionList(Map<String, Object> parameters);
    
    /**
     * 根据用户编码和系统编码查询该用户在本系统中所拥有的菜单项权限信息
     * @param parameters
     * @return
     */
    public List<TbMenuItem> queryTbMenuItemAsListByUserAndSystem(Map<String, Object> parameters);
    
    /**
     * 插入菜单项信息
     * @param menuitem
     * @return
     */
    public boolean insert(TbMenuItem menuitem);
    
    /**
     * 修改菜单项信息
     * @param menuitem
     * @return
     */
    public boolean update(TbMenuItem menuitem);
    
    /**
     * 根据menuitem_id删除指定的菜单项信息
     * @param menuitem_id
     * @return
     */
    public boolean deleteTbMenuItemById(String menuitem_id);
    
    /**
     * 根据menu_id删除它所包含的菜单项信息
     * @param menu_id
     * @return
     */
    public boolean deleteTbMenuItemByMenuId(String menu_id);
}
